// 分类模块
import { topCategory } from '@/api/constants'
import { findAllCateGory } from '@/api/category'

export default {
  namespaced: true,
  state () {
    return {
      // 分类信息集合 依赖topCategory重新设置，保证项目初始化就要有数据
      list: topCategory.map(item => ({ name: item }))
    }
  },
  // 修改分类的函数
  mutations: {
    setList (state, payLoad) {
      // 获取的所以分类的集合
      state.list = payLoad
    },
    // 定义show hide 函数控制当前分类的二级分类的显示隐藏
    show (state, id) {
      const currCategory = state.list.find(item => item.id === id)
      currCategory.open = true
    },
    hide (state, id) {
      const currCategory = state.list.find(item => item.id === id)
      currCategory.open = false
    }
  },
  actions: {
    // 获取分类
    async getList ({ commit }) {
      // 获取分类数据
      const data = await findAllCateGory()
      // 给每个分类加上一个控制二级分类显示隐藏的数据
      data.result.forEach(top => {
        top.open = false
      })
      // 修改分类数据
      commit('setList', data.result)
    }
  }
}
